package com.weixing.mall.provider.model.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.weixing.mall.provider.model.enums.AgentPayChannelEnum;
import com.weixing.mall.provider.model.enums.AgentPayTypeEnum;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 代理缴费记录
 *
 * @author  siashan
 * @since  v1.0
 **/
@Data
public class AgentRenewVo {

    /**
     * 缴费记录id
     */
    private Long id;
    /**
     * 代理商编号id
     */
    private Long agentId;

    /**
     * 代理优惠码
     */
    private String agentSn;

    /**
     * 代理商名称
     */
    private String agentName;

    /**
     * 缴费方式 1线下，2线上
     */
    private AgentPayTypeEnum payType;

    /**
     * 缴费通道 1支付宝，2微信，3现金，3其它
     */
    private AgentPayChannelEnum payChannel;

    /**
     * 缴费金额
     */
    private BigDecimal amount;

    /**
     * 生效时间
     */
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
    private Date effectStart;

    /**
     * 到期时间
     */
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
    private Date effectEnd;

    /**
     * 代理商等级 缴费时，代理商当时的等级
     * <p>1 经销商；2 一代；3 二代；4 三代</p>
     */
    private Integer agentLevel;

    /**
     * 备注
     */
    private String remarks;

    /**
     * 创建时间
     */
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
    private Date createdTime;

    /**
     * 操作人
     */
    private String creator;

    /**
     * 更新时间
     */
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    /**
     * 更新人
     */
    private String updator;

    /**
     * 身份证号
     */
    private String idCard;

    /**
     * 微信号
     */
    private String wechatNum;

    /**
     * 代理登录手机号
     */
    private String mobile;

    /**
     * 是否正式  0否  1是
     */
    private Integer isOfficial = 0;

    /**
     * 是否过期  0 否  1 是
     */
    private Integer isExpire = 0;

    /**
     * 是否禁止登录  0 是  1否
     */
    private Integer isEnable = 0;
    /**
     * 是否黑名单 1 是  0否
     */
    private Integer isBlack = 0;

    /**
     * 所属客服
     */
    private String customerName;

    /**
     * 代理到期时间
     */
    private Date maturityTime;
}
